package io.renren.modules.study.dao;

import io.renren.modules.schedule.entity.CourseBodyScheduleEntity;
import io.renren.modules.study.entity.CourseScheduleEntity;
import io.renren.modules.sys.dto.CollectDto;
import io.renren.modules.study.entity.Course;
import io.renren.modules.study.entity.MyCourseEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface MyCourseDao {
    CollectDto getMyCourseByCourseId(CollectDto c);

    List getCollectionList(Long userId);

    CollectDto getCollectionByCourseId(CollectDto c);

    void saveCollection(CollectDto c);

    CollectDto getMyHistoryByCourseId(CollectDto c);

    void saveHistory(CollectDto c);

    void updateHistory(CollectDto c);

    List getMyHistoryList(Long userId);

    Course getMyBuyCourseById(@Param("courseId") Integer courseId, @Param("userId") Long userId);

    List getCourseList(Long userId);

    List<MyCourseEntity> getMyClassCourseByUserId(Long userId);

    void saveMyBuyCourse(MyCourseEntity myCourseEntity);

    CourseScheduleEntity getMCoursechedule(Map map);

    void saveMyCourseSchedule(Map map);

    void updateThisCourseSchedule(Map map);

    CourseBodyScheduleEntity getMyCourseBodyScheduleEntity(Map map);

    void saveMyCourseBodyScheduleEntity(Map map);

    void updateMyCourseBodySchedule(CourseBodyScheduleEntity courseBodyScheduleEntity);

    List getCourseNotInMyPlan(Map map);

    List getMyCourseBodyScheduleEntityBycourseId(Map map);

    void updateMyCourseSchedule(CourseScheduleEntity courseScheduleEntity);

    List getMyCourseScheduleList(Long userId);
}
